import axios from 'axios';
import { Storage, Toast } from '@/util';

const request = axios.create({
  //  见 .env 文件
  baseURL: process.env.TARO_APP_BASE_URL,
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar' },
});

request.interceptors.request.use(
  function (config) {
    const tokenName = Storage.getItem('tokenName');
    //  SaToken 需要这么做
    config.headers[tokenName] = Storage.getItem('tokenValue');

    return config;
  },
  function (error) {
    return Promise.reject(error);
  },
);

request.interceptors.response.use(
  function (response) {
    //  todo 这里使用的是我常用结构，非此结构需要修改
    const { code, data, message } = response.data.data;

    //  统一做提示
    if (code !== 0) {
      Toast.error('系统异常');
      console.error(message);
    }

    return data;
  },
  function (error) {
    Toast.error('系统异常');
    return Promise.reject(error);
  },
);

export default request;
